package com.xcity.game.employee.skill;

import com.xcity.game.battle.pve.employee.EmployeeSkillBattleContext;
import com.xcity.game.battle.pve.employee.impl.CDSkillContext;
import com.xcity.game.battle.pve.employee.impl.DEFENSE_SHIELD_BUFF_CONTEXT;
import com.xcity.game.battle.pve.employee.impl.DOUBLE_DAMAGE_CONTEXT;
import com.xcity.game.battle.pve.employee.impl.EXTRA_DAMAGE_CONTEXT;
import com.xcity.game.battle.pve.employee.impl.INVINCIBLE_LAST_N_TIMES_CONTEXT;
import com.xcity.game.battle.pve.employee.impl.MIRACLE_CONTEXT;
import com.xcity.game.battle.pve.employee.impl.POWERFUL_CONTEXT;
import com.xcity.game.battle.pve.employee.impl.RAISE_BUILD_DEFENSE_CONTEXT;
import com.xcity.game.battle.pve.employee.impl.RAISE_BUILD_EMPLOYEES_DEFENSE_CONTEXT;
import com.xcity.game.battle.pve.employee.impl.RAISE_REWARD_EXP_AND_MONEY_CONTEXT;
import com.xcity.game.battle.pve.employee.impl.REBORN_CONTEXT;
import com.xcity.game.battle.pve.employee.impl.RECOVER_HP_AFTER_BE_ATTACKED_CONTEXT;
import com.xcity.game.battle.pve.employee.impl.RECOVER_HP_BUFF_CONTEXT;
import com.xcity.game.battle.pve.employee.impl.RaiseAttackLastNTimesSkillContext;
import com.xcity.game.battle.pve.employee.impl.ReduceTargetHpSkillContext;
import com.xcity.game.battle.pve.employee.impl.SKILL_36_CONTEXT;
import com.xcity.game.battle.pve.employee.impl.SKILL_37_CONTEXT;
import com.xcity.game.battle.pve.employee.impl.SKILL_38_CONTEXT;
import com.xcity.game.battle.pve.employee.impl.SKILL_39_CONTEXT;
import com.xcity.game.battle.pve.employee.impl.SKILL_40_CONTEXT;
import com.xcity.game.battle.pve.employee.impl.SKILL_41_CONTEXT;
import com.xcity.game.battle.pve.employee.impl.SKILL_42_CONTEXT;
import com.xcity.game.battle.pve.employee.impl.SKILL_43_CONTEXT;
import com.xcity.game.battle.pve.employee.impl.SKILL_44_CONTEXT;
import com.xcity.game.battle.pve.employee.impl.SKILL_45_CONTEXT;
import com.xcity.game.battle.pve.employee.impl.SKILL_46_CONTEXT;
import com.xcity.game.battle.pve.employee.impl.SKILL_47_CONTEXT;

public enum SkillGroups2 {

	UNKNOWN,
	
	/**
	 * 口若悬河/化险为夷<br/>
	 * 1个效果值：员工所在建筑受到负面世界事件影响时可挽回比例<br/>
	 * eg. 员工所在建筑受到负面世界事件影响时可挽回{0}%的损失
	 */
//	1		避险		当该员工所在建筑受到世界事件负面影响时，可以挽回损失总量的{0=40#0}%
	REDUCE_BAD_WORLD_EVENT_LOSSES,

	/**
	 * 倾倒众生<br/>
	 * 1个效果值：员工所在建筑被攻击时，对方任意5个员工属性为0的触发几率<br/>
	 * eg. 当该员工所在建筑受到其他玩家员工掠夺时，{0}%几率另其中一半员工瘫痪
	 */
	DISABLE_EMPLOYEE_ABILITY, //2, // 防守方
	
	/**
	 * 背水一战<br/>
	 * 1个效果值：增加员工所在建筑的自救力数值<br/>
	 * eg. 增加员工所在建筑的自救力{0}
	 */
	ADD_BUILD_CURE, // 3,
	
	/**
	 * 时来运转/近水楼台<br/>
	 * 1个效果值：员工所在建筑受到正面世界事件影响时收益提升比例<br/>
	 * eg. 当该员工所在建筑受到世界事件正面影响时，收益提升{0}%
	 */
//	4		乘势		当该员工所在建筑受到世界事件正面影响时，收益提升{0=10#0}%
	ADD_GOOLD_WORLD_EVENT_INCOME, //4,
	
	/**
	 * 临危不惧/舌灿生花/趋吉避凶<br/>
	 * 2个效果值：1、员工所在建筑被攻击时，攻击无效的触发几率 2、触发CD（分钟）<br/>
	 * eg. 员工所在建筑被攻击时，{0}%几率让攻击失败，每小时可触发一次
	 */
//	5		说服		当该员工所在建筑受到来自玩家员工的掠夺时有{0=40#0}%几率另攻击无效
	DISABLE_OTHER_ATTACK, // 5, // 防守方
	
	/**
	 * 吃苦耐劳<br/>
	 * 1个效果值：增加员工所在建筑的储备力数值<br/>
	 * eg. 增加员工所在建筑的储备力{0}
	 */
	ADD_BUILD_RESERVE, // 6,
	
	/**
	 * 无惧无畏<br/>
	 * 两个效果值：1、技能触发几率 2、综合能力提升比例<br/>
	 * eg. 员工攻击建筑时，{0}%几率增加自己{1}%的综合能力
	 */
	ADD_EMPLOYEE_GLOBAL_ABILITY, // 7, // 攻击方
	
	/**
	 * 逆水行舟<br/>
	 * 1个效果值: 当该员工所在建筑受到任何损失时仍可以保证获得{0}%的收益<br/>
	 * eg. 当该员工所在建筑受到任何损失时仍可以保证获得{0}%的收益
	 */
	FIXED_INCOME_WHEN_LOSS, // 8, // TODO
	
	/**
	 * 财源滚滚<br/>
	 * 1个效果值：员工所在建筑的每分钟收益和最大收益提升比例<br/>
	 * eg. 提升员工所在建筑的收益{0}%
	 */
//	9		增产		提升所在建筑收益{0=50#0}%
	ADD_BUILD_INCOME, // 9,
	
	/**
	 * 凝神专注<br/>
	 * 1个效果值：该员工被派遣入建筑后，列表内员工综合能力提升比例<br/>
	 * eg. 当员工被派遣进建筑后，提升员工列表中所有员工{0}%的综合能力
	 */
	ADD_ALL_EMPLOYEE_GLOBAL_ABILITY, // 10,
	
	/**
	 * 绝处逢生<br/>
	 * 1个效果值：参与掠夺后安全返回的几率<br/>
	 * eg. 该员工参与掠夺时有{0}%的几率不消耗行动力
	 */
	NOT_DEC_ENERGY_ATTACK_BUILD, // 11, // 攻击方
	
	/**
	 * 开源节流<br/>
	 * 1个效果值：员工所在建筑每分钟收益和最大收益提升比例<br/>
	 * eg. 当该员工所在建筑只有其一人时，建筑产出提升{0}%
	 */
//	12		勤奋		当该员工所在建筑只有其一人时，建筑产出提升{0=200#0}%
	ADD_BUILD_INCOME_ONLY_ONE_EMPLOYEE, // 12,
	
	/**
	 * 手眼通天<br/>
	 * 1个效果值：该员工参与掠夺的建筑的抵抗力降低比例<br/>
	 * eg. 当该员工参与掠夺时，可以直接抵消对方建筑抵抗力{0}%
	 */
	REDUCE_ENEMY_BUILD_DEFENSE, // 13, // 攻击方
	
	/**
	 * 涅槃重生<br/>
	 * 1个效果值：立即获得当前建筑最大收益的比例<br/>
	 * eg. 当该员工所在建筑【休店期】结束后立刻获得该建筑{0}%最大收益
	 */
	GET_INCOME_AFTER_REST, // 14, // 防守方
	
	/**
	 * 吉人天相<br/>
	 * 2个效果值：1、技能触发几率 2、掠夺金额提升比例<br/>
	 * eg. 该员工参与掠夺时有{0}%的几率提升掠夺收入{1}%
	 */
	ADD_ATTACK_INCOME, // 15, // 攻击方
	
	/**
	 * 逆天改命<br/>
	 * 2个效果值：当前建筑最大收益提升比例, 触发几率<br/>
	 * eg. 当该员工所在建筑被掠夺后建筑不会进入【休店期】并立即提升建筑产出{0}%
	 */
	ADVANCE_BUILD_INCOME_AFTER_BE_ATTACKED, // 16, // 防守方

//	17	10	拉帮结伙		消除当前棋盘内同一颜色所有色块
	CLEAR_THE_SAME_COLOR_BLOCKS(CDSkillContext.class), // 17,
//	18	10	一飞冲天		消除以当前色块为中心纵列所有色块
	CLEAR_THE_COL_BLOCKS(CDSkillContext.class), // 18,
//	19	10	横冲直撞		消除以当前色块为中心的横排所有色块
	CLEAR_THE_ROW_BLOCKS(CDSkillContext.class), // 19,
//	20	5	同归于尽		消除以当前色块为中心的周围色块
	CLEAR_THE_AROUND_BLOCKS(CDSkillContext.class), // 20,
//	21	5	个点击破		消除当前色块
	CLEAR_THE_CURRENT_COLOR_BLOCKS(CDSkillContext.class), // 21,
////	22		破势		谈判开局后{0=50#0}%几率降低对手当前气势值{1=20#0}%
//	22		天王降临		{2=90056#0}{3=90057#0}{4=90058#0}{5=90059#0}共同出场时，本次谈判{0=100#0}对手气势值降低{1=20#0}%
	REDUCE_TARGET_HP(ReduceTargetHpSkillContext.class), // 22,
////	23		猛攻		谈判开局后{0=50#0}%几率提升攻击力{1=500#0}%，持续{2=3#0}次攻击
	RAISE_ATTACK_LAST_N_TIMES(RaiseAttackLastNTimesSkillContext.class), // 23,
////	24		固守		谈判开局后{0=50#0}%几率无敌，持续抵挡对方{1=5#0}次攻击
	INVINCIBLE_LAST_N_TIMES(INVINCIBLE_LAST_N_TIMES_CONTEXT.class), // 24,
////	25		强心		谈判中被攻击后有{0=37#0}%几率恢复受到伤害{1=50#0}%的气势值
	RECOVER_HP_AFTER_BE_ATTACKED(RECOVER_HP_AFTER_BE_ATTACKED_CONTEXT.class), // 25,
////	26		财富		谈判胜利后提升获得经验与现金{0=200#0}%
//	26		收入保障		{0=90069#0}{1=90070#0}{2=90071#0}共同出场时，提升{3=100#0}%本次谈判所获得的现金和经验
	RAISE_REWARD_EXP_AND_MONEY(RAISE_REWARD_EXP_AND_MONEY_CONTEXT.class), // 26,
////	27		勇猛		谈判中每次攻击有{0=57#0}%几率造成额外{1=100#0}%伤害
//	27		女性领袖		{2=90088#0}{3=90089#0}{4=90090#0}共同出场时，每次攻击有{0=48#0}%几率对对方造成额外{1=150#0}%伤害
//	27		能量爆发		{2=90033#0}{3=90036#0}{4=90065#0}共同出场时，每次攻击有{0=53#0}%几率对对手造成本次伤害{1=50#0}%的额外伤害
	DOUBLE_DAMAGE(DOUBLE_DAMAGE_CONTEXT.class), // 27,
//	28		呵斥		谈判中每次攻击有{0=60#0}%几率造成攻击力{1=50#0}%的额外伤害，该伤害会被对方防御减免
	EXTRA_DAMAGE(EXTRA_DAMAGE_CONTEXT.class), // 28,
//	29		治愈		谈判中气势值低于{0=20#0}%时获得一个治愈buff，每移动一次棋子恢复气势值{1=4#0}%，生效{2=5#0}次后消失，每局谈判只能出现{3=1#0}次
	RECOVER_HP_BUFF(RECOVER_HP_BUFF_CONTEXT.class), // 29,
//	30		婉拒		谈判中气势值低于{0=20#0}%时获得一个防御护盾，抵抗{1=3#0}次伤害后消失，每局只能生效{2=1#0}次。
	DEFENSE_SHIELD_BUFF(DEFENSE_SHIELD_BUFF_CONTEXT.class), // 30,
//	31		奇迹		当该员工所在建筑被掠夺时会令本次掠夺无效，并在接下来{0=1#0}小时让该建筑无法被任何人掠夺，冷却时间{1=2#0}小时
	MIRACLE(MIRACLE_CONTEXT.class), // 31,
//	32		重生		当该员工所在建筑被掠夺后提升其他建筑收入{0=100#0}%
	REBORN(REBORN_CONTEXT.class), // 32,
////	33	威武（当该员工所在建筑被掠夺时会令本次掠夺无效，并在接下来1小时让该建筑无法被任何人掠夺，冷却时间2小时）
//	33		威武		当该员工所在建筑被掠夺后建筑不会被夺走。冷却时间{0=2#0}小时
	POWERFUL(POWERFUL_CONTEXT.class), // 33,
//	34		专注		提升所在建筑所有员工防御力{0=5#0}%
	RAISE_BUILD_EMPLOYEES_DEFENSE(RAISE_BUILD_EMPLOYEES_DEFENSE_CONTEXT.class), // 34,
//	35		安全		提升所在建筑基础抵抗力{0=20#0}点
//	35		防备		增加所在建筑基础抵抗力{0=50#0}点
	RAISE_BUILD_DEFENSE(RAISE_BUILD_DEFENSE_CONTEXT.class), // 35,
//	36		科技力量		{1=90098#0}{2=90099#0}{3=90100#0}共同出场时，在谈判中有{0=21#0}%几率使玩家下一次攻击直接秒杀对方
	SKILL_36(SKILL_36_CONTEXT.class),
//	37		慈悲为怀		{2=90091#0}{3=90092#0}共同出场时，在谈判中有{0=35#0}%几率回复玩家{1=100#0}%气势值
	SKILL_37(SKILL_37_CONTEXT.class),
//	38		王者之证		{1=90094#0}{2=90084#0}{3=90085#0}共同出场时，降低主动技能冷却时间{0=50#0}%
	SKILL_38(SKILL_38_CONTEXT.class),
//	39		乱世枭雄		{2=90095#0}{3=90096#0}{4=90097#0}共同出场时，在玩家气势低于{0=50#0}%时攻击伤害提升{1=100#0}%
	SKILL_39(SKILL_39_CONTEXT.class),
//	40		女神光芒		{2=90075#0}{3=90076#0}{4=90077#0}共同出场时，{0=100#0}降低对手攻击伤害{1=20#0}%
//	40		稳固坚守		{2=90035#0}{3=90036#0}{4=90037#0}共同出场时，被对手攻击时有{0=60#0}%几率抵抗{1=50#0}%伤害
	SKILL_40(SKILL_40_CONTEXT.class),
//	41		极限命运		{1=90038#0}{2=90040#0}{3=90061#0}{4=90062#0}共同出场时，当玩家气势耗尽时可获得额外{0=4#0}次挪动棋子的机会
	SKILL_41(SKILL_41_CONTEXT.class),
//	42		寒流来袭		{1=90032#0}{2=90039#0}{3=90041#0}{4=90042#0}共同出场时，每次攻击有{0=50#0}%几率冻结对手使对手下次攻击无效
	SKILL_42(SKILL_42_CONTEXT.class),
//	43		偏爱有加		{2=90049#0}{3=90050#0}{4=90051#0}{5=90052#0}共同出场时，{0=43#0}%几率反弹对手{1=100#0}%伤害
	SKILL_43(SKILL_43_CONTEXT.class),
//	44		风雨同舟		{2=90001#0}{3=90002#0}{4=90003#0}{5=90004#0}共同出场时，开局获得等同于自身气势值{0=50#0}%的护盾，持续{1=10#0}步或被击碎
	SKILL_44(SKILL_44_CONTEXT.class),
//	45		左右互换		{0=90013#0}{1=90014#0}{2=90015#0}共同出场时，当玩家气势值低于{3=10#0}%，对方气势值高于{4=50#0}%时与对方交换气势值
	SKILL_45(SKILL_45_CONTEXT.class),
//	46		笑对人生		{0=90016#0}{1=90017#0}{2=90018#0}{3=90019#0}共同出场时，每次攻击{4=37#0}%几率对对手造成等同于气势值{5=20#0}%的伤害
	SKILL_46(SKILL_46_CONTEXT.class),
//	47		劫掠		该员工被派遣进入被掠夺建筑后，掠夺产出增加{0=20#0}%
	SKILL_47(SKILL_47_CONTEXT.class),
	;
	
	public final Class<? extends EmployeeSkillBattleContext> contextClass;
	
	SkillGroups2() {
		this(null);
	}
	
	SkillGroups2(Class<? extends EmployeeSkillBattleContext> contextClass) {
		this.contextClass = contextClass;
	}
	
	public static SkillGroups2 of(byte group) {
		SkillGroups2[] vals = values();
		return group >= 0 && group < vals.length ? vals[group] : UNKNOWN;
	}
	
}
